package com.hskn.hss.module.carTrack.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 *
 * </p>
 *
 * @author hskn
 * @since 2021-05-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class CarTrack implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 设备编号
     */
    private String eqpNum;
    /**
     * 发生月份
     */
    private String workMonth;
    /**
     * 工作日期
     */
    private Date workDay;
    /**
     * 车辆id
     */
    private String carId;
    /**
     * 网格id
     */
    private String gridId;
    /**
     * 班次id
     */
    private String shiftId;
    /**
     *班次开始时间
     */
    @TableField(exist = false)
    private Date shiftStartDate;
    /**
     *班次结束时间
     */
    @TableField(exist = false)
    private Date shiftEndDate;
    /**
     * 经度
     */
    private String lng;
    /**
     * 纬度
     */
    private String lat;
    /**
     * 位置
     */
    private String location;
    /**
     * 编译的坐标（中文）
     */
    private String address;
    /**
     * 油量
     */
    private BigDecimal oilMass;
    /**
     * 速度
     */
    private Integer speed;
    /**
     * 信息描述
     */
    private String message;
    /**
     * 是否报警：0否  1是
     */
    private Integer isDanger;
    /**
     * 是否违规：0否  1是
     */
    private Integer isWarning;
    /**
     * 发生时间
     */
    private Date timestamp;
    /**
     *车辆id和分钟
     */
    @TableField(exist = false)
    private String carIdAndTime;
    /**
     * 喷头 扫地 喷雾 开关  0未开1已开
     */
    private Integer status;
    /**
     * 作业类型 2 机械清扫，3 垃圾清运 4 垃圾转运
     */
    private Integer jobType;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 报警漏油占比
     */
    private Double dangerOil;
    /**
     * 报警超速秒数
     */
    private Integer dangerOverSpeed;
    /**
     * 违规超速秒数
     */
    private Integer warningOverSpeed;
    /**
     * 违规空驶秒数
     */
    private Integer warningDriveEmpty;
    /**
     * 违规低速秒数
     */
    private Integer warningLowSpeed;
    /**
     * 违规停留秒数
     */
    private Integer warningStay;
    /**
     * 违规离岗秒数
     */
    private Integer warningLeave;
    /**
     * 违规油量监测秒数
     */
    private Integer warningOil;

    /**
     * 移动秒数
     */
    private Integer moveSecond;

    private String carnumber;
//    @TableField(exist = false)
//    private String carNumber;

    @TableField(exist = false)
    private String groupName;
    /**
     * 是否网格内：0否 1是
     */
    private Integer isInGrid;
    /**
     * 离上一个坐标点距离
     */
    private Integer distanceBetween;
    /**
     * 作业大类ID
     */
    private String workTypeId;
    /**
     * 作业大类名称
     */
    private String workTypeName;
    /**
     * message字段对应的时间取值字段
     */
    private String lastMessageCheck;
//    /**
//     * 设施id
//     */
//    private String facilityId;
//    /**
//     * 设施清理状态
//     */
//    private Integer cleanType;

    /**
     * 加油量
     */
    private Double addOilNum;
    /**
     * 加油比例
     */
    private Integer addOilProp;

    /**
     * 车辆总里程(单位1/10千米每小时)
     */
    private Double mileage;

    /**
     * 是否油耗异常(0正常  1异常)
     */
    private Integer isOilmassAbnormal;

    /**
     * 是否超速(0正常 1超速)
     */
    private Integer isSpeeding;

    /**
     * 是否停留(0正常 1停留)
     */
    private Integer isStop;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(exist = false)
    private Date startDate;
    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(exist = false)
    private Date endDate;

    /**
     * 是否停留违规
     */
    @TableField(exist = false)
    private Integer isStopViolation;


    /**
     * 方向
     */
    private String direction;


    /**
     * 是否速度限制违规(0正常 1违规)
     */
    private Integer isSpeedLimit;

    /**
     * 是否车辆空驶违规(0正常 1违规)
     */
    private Integer isEmptyTravel;

    /**
     *是否离岗(0正常 1离岗)
     */
    private Integer isDemobiliz;

    /**
     *是否应急(0正常 1应急)
     */
    private Integer isEmergency;


    @TableField(exist = false)
    private Integer index;
    @TableField(exist = false)
    private Integer isWorkIng; //1 是 0 否

    //检测时间内的平均值
    private BigDecimal averageFuelConsumption;
}
